package com.ruanxie.json.deserializer;


import com.alibaba.fastjson.parser.DefaultJSONParser;
import com.alibaba.fastjson.parser.JSONToken;
import com.alibaba.fastjson.parser.deserializer.ObjectDeserializer;

import java.lang.reflect.Type;

/**
 * 字符串转为布尔类型反序列器
 * "是"->true；其他字符串->false
 */
public class BooleanDeserializer implements ObjectDeserializer {
    @Override
    public Boolean deserialze(DefaultJSONParser parser, Type type, Object fieldName) {
        Object value = parser.parse();
        if (value instanceof String) {
            String strValue = (String) value;
            if (strValue.equals("是")) {
                return true;
            } else {
                return false;
            }
        }
        return null;
    }

    @Override
    public int getFastMatchToken() {
        return JSONToken.LITERAL_STRING;
    }
}
